#!/bin/bash

set -e

SCRIPT_PATH="$(readlink -f "${BASH_SOURCE[0]}")"
SCRIPT_DIR="$(dirname "${SCRIPT_PATH}")"

DIR=analysis
DOCX_FILE=final-report.docx

# 清理旧目录
[ -d "$DIR" ] && rm -rf "$DIR"
mkdir -p "$DIR"

# 复制文件
cp "$SCRIPT_DIR/$DOCX_FILE" "$DIR"

cd "$DIR"

# 重命名为 zip 并解压
mv "$DOCX_FILE" final-report.zip
unzip -q final-report.zip > /dev/null

# 需要检查的 XML 文件
declare -a files=("word/document.xml" "word/styles.xml")

# 格式化后临时文件名后缀
FORMATTED_SUFFIX=".formatted.xml"

# 需要搜索的样式名
SEARCH_STYLE="h3-song-bold"

found=0

for file in "${files[@]}"; do
    if [ -f "$file" ]; then
        # 格式化输出
        xmllint --format "$file" > "${file}${FORMATTED_SUFFIX}"
        echo "Searching for style '$SEARCH_STYLE' in $file ..."
        if grep --color=auto -B2 -A2 "$SEARCH_STYLE" "${file}${FORMATTED_SUFFIX}"; then
            found=1
        else
            echo "Style '$SEARCH_STYLE' not found in $file"
        fi
    else
        echo "File $file not found!"
    fi
done

if [ "$found" -eq 0 ]; then
    echo "No occurrences of style '$SEARCH_STYLE' found in any checked files."
fi

echo
echo "=== 统计 word/document.xml 中正文使用的所有段落样式 (w:styleId) ==="
if [ -f "word/document.xml" ]; then
    grep -oP 'w:styleId="\K[^"]+' "word/document.xml" | sort | uniq -c | sort -nr
else
    echo "word/document.xml 文件不存在，无法统计样式。"
fi
